package com.ruoyi.jl_base.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 工程量清单业务对象 jl_base_ba_contract_sheet
 *
 * @author zyb
 * @date 2024-12-23
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class JlBaseBaContractSheetBo extends BaseEntity {

    /**
     * sheet主键
     */
    private Long sheetId;

    /**
     * 合同id
     */
    @NotNull(message = "合同id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long contractId;

    /**
     * 上级sheet主键
     */
    @NotNull(message = "上级sheet主键不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long parentSheetId;

    /**
     * 是否允许修改flag
     */
    private Integer updateFlag;

    /**
     * 审核状态
     */
    private String approveFlag;

    /**
     * 子目号
     */
    @NotBlank(message = "子目号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String zmh;

    /**
     * 子目名称
     */
    @NotBlank(message = "子目名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String zmmc;

    /**
     * 单位
     */
    @NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String danwei;

    /**
     * 清单初始单价
     */
    private BigDecimal sheetCsPrice;

    /**
     * 清单初始数量
     */
    private BigDecimal sheetCsNum;

    /**
     * 清单初始总价
     */
    private BigDecimal sheetCsTotalMoney;

    /**
     * 清单初始复核数量
     */
    private BigDecimal sheetCsFhNum;

    /**
     * 清单初始复核总价
     */
    private BigDecimal sheetCsFhTotalMoney;

    /**
     * 清单单价变化
     */
    private BigDecimal sheetPriceBg;

    /**
     * 清单实时单价(=清单初始单价+清单单价变化量)
     */
    private BigDecimal sheetSsPrice;

    /**
     * 清单数量变化
     */
    private BigDecimal sheetNumBg;

    /**
     * 清单实时数量(=清单初始复核数量+清单数量变化量)
     */
    private BigDecimal sheetSsNum;

    /**
     * 清单实时总价(=清单实时数量x清单实时单价)
     */
    private BigDecimal sheetSsTotalMoney;

    /**
     * 清单总价变化(=清单实时总价-清单初始复核总价)
     */
    private BigDecimal sheetTatalMoneyBg;

    /**
     * 清单初始部分累计计量数量
     */
    private BigDecimal sheetCsHavaJlNum;

    /**
     * 清单初始部分累计计量金额(=清单初始部分累计计量数量x清单实时单价)
     */
    private BigDecimal sheetCsHaveJlTotalMoney;

    /**
     * 清单变更部分累计计量数量
     */
    private BigDecimal sheetBgHavaJlNum;

    /**
     * 清单变更部分累计计量金额(=清单变更部分累计计量数量x清单实时单价)
     */
    private BigDecimal sheetBgHaveJlTotalMoney;

    /**
     * 清单累计计量数量(=清单初始部分累计计量数量+清单变更部分累计计量数量)
     */
    private BigDecimal sheetHaveJlNum;

    /**
     * 清单累计计量金额(=清单累计计量数量x清单实时单价)
     */
    private BigDecimal sheetHaveJlTotalMoney;

    /**
     * 清单初始部分计量审批中数量
     */
    private BigDecimal sheetCsJlSpzNum;

    /**
     * 初始部分可计量数量(=清单初始复核数量-清单初始部分累计计量数量-清单初始部分计量审批中数量)
     */
    private BigDecimal sheetCsCouldJlNum;

    /**
     * 清单变更部分计量审批中数量
     */
    private BigDecimal sheetBgJlSpzNum;

    /**
     * 变更部分可计量数量(=清单数量变化-清单变更部分累计计量数量-清单变更部分计量审批中数量)
     */
    private BigDecimal sheetBgCouldJlNum;

    /**
     * 清单实时可计量数量(=变更部分可计量数量+初始部分可计量数量)
     */
    private BigDecimal sheetSsCouldJlNum;

    /**
     * 清单实时wbs已经匹配数量
     */
    private BigDecimal sheetWbsHavaPpNum;


}
